package com.insightfullogic.java8.examples.chapter3;
import com.insightfullogic.java8.examples.chapter1.Album;
import com.insightfullogic.java8.examples.chapter1.SampleData;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.function.Supplier;
import static java.util.Arrays.asList;
import static java.util.Collections.unmodifiableList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class RefactorTest {
@Test
public void allStringJoins() {
List<Supplier<Refactor.LongTrackFinder>> finders = Arrays.<Supplier<Refactor.LongTrackFinder>>asList(
Refactor.Step0::new,
Refactor.Step1::new,
Refactor.Step2::new,
Refactor.Step3::new,
Refactor.Step4::new
);
List<Album> albums = unmodifiableList(asList(SampleData.aLoveSupreme, SampleData.sampleShortAlbum));
List<Album> noTracks = unmodifiableList(asList(SampleData.sampleShortAlbum));
finders.forEach(finder -> {
System.out.println("Testing: " + finder.toString());
Refactor.LongTrackFinder longTrackFinder = finder.get();
Set<String> longTracks = longTrackFinder.findLongTracks(albums);
assertEquals("[Acknowledgement, Resolution]", longTracks.toString());
longTracks = longTrackFinder.findLongTracks(noTracks);
assertTrue(longTracks.isEmpty());
});
}
}